package com.ygo.feihua.util;
import java.io.*;
import java.util.*;
import com.ygo.feihua.*;

public class FileUtil
{
	//------------------------------------文件相关方法------------------------------------------------------------------------

	//获取指定目录下所有文件夹的绝对路径
	public static List<String> getFolder(String s){
		List<String> list=new ArrayList<String>();
		File[] f=new File(s).listFiles();

		for(File ff:f){
			if(ff.isDirectory()){
				list.add(ff.getAbsolutePath());
			}

		}
		return list;
	}
	
	//获取路径文件名
	public static String getFilename(String s){
		if(s!=null){
			String[] ss=s.split("/");
			return ss[ss.length-1];
		}
		return null;
	}


	//删除文件
	public static boolean delFile(String s){
		File file=new File(s);
		
		if(file.isDirectory()){
			boolean b=true;
			for(String ss:file.list()){
				b=b&delFile(ss);
			}
			return b;
		}else{
		//如果文件路径所对应的文件存在,并且是一个文件,则直接删除
		if(file.exists()&&file.isFile()){
			if(file.delete()){
				return true;
			}else{
				return false;
			}
		}else{
			return false;
		}
		}
	}


	//重命名文件
	public static boolean cmm(String Path,String name){

		File file=new File(Path); 
		if(file.exists())
		{
			//获取文件名以外的路径
			String abb[]=Path.split("/");
			String lj="";
			for(int i=0;i<abb.length-1;i++){
				lj+=abb[i]+"/";
			}
			//重命名
			file.renameTo(new File(lj+name));
			return true;
		}
		return false;
	}

	public static void copyFile(String oldPath, String newPath, boolean isname) throws FileNotFoundException, IOException {

		//判断复制后的路径是否含有文件名,如果没有则加上
		if (!isname) {
			//由于newPath是路径加文件名,所以获取要复制的文件名与复制后的路径组成新的newPath
			String abb[]=oldPath.split("/");
			newPath = newPath + "/" + abb[abb.length - 1];
		}

		FileInputStream fis=new FileInputStream(oldPath);
		FileOutputStream fos=new FileOutputStream(newPath);
		byte[] buf=new byte[1024];
		int len=0;
		while ((len = fis.read(buf)) != -1) {
			fos.write(buf, 0, len);
		}
		fos.close();
		fis.close();

	}
	
	public static void moveFile(String oldPath, String newPath, boolean isname) throws FileNotFoundException, IOException {

		//判断复制后的路径是否含有文件名,如果没有则加上
		if (!isname) {
			//由于newPath是路径加文件名,所以获取要复制的文件名与复制后的路径组成新的newPath
			String abb[]=oldPath.split("/");
			newPath = newPath + "/" + abb[abb.length - 1];
		}

		FileInputStream fis=new FileInputStream(oldPath);
		FileOutputStream fos=new FileOutputStream(newPath);
		byte[] buf=new byte[1024];
		int len=0;
		while ((len = fis.read(buf)) != -1) {
			fos.write(buf, 0, len);
		}
		fos.close();
		fis.close();
		//删除文件
		File file=new File(oldPath);
		if (file.exists() && file.isFile()) {
			file.delete();
		}

	}

	
	
}
